<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    /* 
      FC : 格式化上下文（Formatting Context）
      BFC : 块级格式化上下文（Block Formatting Context） 
          BFC的特性：
            口在BFC中，box会在垂直方向上一个挨着一个的排布；
            口垂直方向的间距由margin属性决定；
            口在同一个BFC中，相邻两个box之间的margin会折叠(collapse)
            口在BFC中，每个元素的左边缘是紧挨着包含块的左边缘的；
          ■那么这个东西有什么用呢?
            口解决margin的折叠问题；
            口解决浮动高度塌陷问题；
          overflow 除了hidden以外的值都会触发BFC，
          触发BFC后可以解决margin折叠问题和浮动高度塌陷问题；

      IFC : 行内格式化上下文（Inline Formatting Context）
      FFC : 浮动格式化上下文（Flex Formatting Context）
      GFC : 网格格式化上下文（Grid Formatting Context）
      CFC : 表格格式化上下文（Table Formatting Context）

      元素在标准流里都属于一个FC 
      哪些具体的情况下会创建BFC:
        口根元素(<html>)
        口浮动元素(元素的float不是none)
        口绝对定位元素(元素的position为absolute或fixed)
        口行内块元素(元素的display为inline-block)
        口表格单元格(元素的display为table-cell,HTML表格单元格默认为该值),
          表格标题(元素的display为table-caption,HTML表格标题默认为该值)
        口匿名表格单元格元素(元素的display为table、table-row、table-row-group、
          table-header-group、table-footer-group(分别是HTMLtable、row、tbody、
          thead、tfoot的默认属性)或inline-table)
        口overflow计算值(Computed)不为visible的块元素
        口弹性元素(display为flex或inline-flex元素的直接子元素)
        口网格元素(display为grid或inline-grid元素的直接子元素)
        口display值为flow-root的元素
    */

    /* .box {
      overflow: auto;
    } */

    .container {
      overflow: auto;
    }

    .box1 {
      height: 200px;
      width: 400px;
      background-color: orange;

      margin-bottom: 30px;
    }

    .box2 {
      height: 150px;
      background-color: purple;

      margin-top: 50px;
    }

  </style>
</head>
<body>
  
  <div class="container">
    <div class="box1"></div>
  </div>
  <div class="box2"></div>

  <p>
    <a href=""></a>
    <span></span>
  </p>

</body>
</html>